package com.collect.senegal.zhiScene.zhiCollection.zhiDetail;

import android.content.Context;

import com.collect.senegal.zhiBase.BaseContract;
import com.collect.senegal.zhiBean.zhiReceive.ZHIRCaseDetailEntity;
import com.collect.senegal.zhiBean.zhiReceive.ZHIRPartRepayListEntity;
import com.collect.senegal.zhiBean.zhiReceive.ZHIRPhoneBookEntity;
import com.collect.senegal.zhiBean.zhiReceive.ZHIRPhoneBookSmsEntity;
import com.collect.senegal.zhiBean.zhiReceive.ZHIRRecTagEntity;
import com.collect.senegal.zhiBean.zhiReceive.ZHIRRepaymentLinkEntity;
import com.collect.senegal.zhiBean.zhiSend.ZHISCaseDetailEntity;
import com.collect.senegal.zhiBean.zhiSend.ZHISCaseRecordEntity;
import com.collect.senegal.zhiBean.zhiSend.ZHISCreateDunVirtualAccountEntity;
import com.collect.senegal.zhiBean.zhiSend.ZHISPartRepayListEntity;
import com.collect.senegal.zhiBean.zhiSend.ZHISRepaymentLinkEntity;
import com.collect.senegal.zhiBean.zhiSend.ZHISSendSmsEntity;

import java.util.ArrayList;

public class ZHIDetailContract {
    interface View extends BaseContract.View {
        /**
         * 错误信息返回
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-14 17:54
         */
        void onGetErrorInfo(String code, String msg);

        /**
         * 获取案件详情返回
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void onGetCaseDetailV2(ZHIRCaseDetailEntity zhirCaseDetailEntity);

        /**
         * 添加案件催记返回
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void onCaseRecord();

        /**
         * 添加案件催记返回
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void onCaseRecordForWhatsapp(String contactMobile, String content);

        /**
         * 发送短信返回
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void onSendTagSms();

        /**
         * 发送短信返回
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void onSendTagSmsV2();

        /**
         * 发送还款链接返回
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void onSendTagSmsLink();

        /**
         * 获取还款链接返回
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void onGetRepayLink(ZHIRRepaymentLinkEntity zhirRepaymentLinkEntity);

        /**
         * 创建虚拟还款账户返回
         *
         * @type method
         * @author liwenjie
         * @creatTime 2021/1/29 16:25
         */
        void onCreateVirtualAccount();

        /**
         * 获取部分还款列表返回
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void onGetPartRepayList(ArrayList<ZHIRPartRepayListEntity> arrayList);

        /**
         * 获取通讯录短信互通的联系人列表列表
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void onGetSmsBothContacts(ArrayList<ZHIRPhoneBookSmsEntity> zhirPhoneBookSmsEntityArrayList);

        /**
         * 案件详情-拆分dunRecords返回
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void onGetDunRecords(ArrayList<ZHIRRecTagEntity> arrayList);

        /**
         * 案件详情-拆分dunFollows返回
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void onGetDunFollows(ArrayList<ZHIRPhoneBookEntity> arrayList);
    }

    interface Presenter extends BaseContract.Presenter<View> {
        /**
         * 获取案件详情
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void getCaseDetailV2(Context context, ZHISCaseDetailEntity zhiSCaseDetailEntity);

        /**
         * 添加案件催记
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void caseRecord(Context context, ZHISCaseRecordEntity zhiSCaseRecordEntity);

        /**
         * 添加案件催记
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void caseRecordForWhatsapp(Context context, final ZHISCaseRecordEntity zhiSCaseRecordEntity, final String content);

        /**
         * 发送短信
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void sendTagSms(Context context, ZHISSendSmsEntity zhisSendSmsEntity);

        /**
         * 发送短信
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void sendTagSmsV2(Context context, ZHISSendSmsEntity zhiSSendSmsEntity);

        /**
         * 发送还款链接
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void sendTagSmsLink(Context context, ZHISSendSmsEntity zhisSendSmsEntity);

        /**
         * 获取还款链接
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void getRepayLink(Context context, ZHISRepaymentLinkEntity zhiSRepaymentLinkEntity);

        /**
         * 创建虚拟还款账户
         *
         * @type method
         * @author liwenjie
         * @creatTime 2021/1/29 16:25
         */
        void createVirtualAccount(Context context, ZHISCreateDunVirtualAccountEntity zhisCreateDunVirtualAccountEntity);

        /**
         * 获取部分还款列表
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void getPartRepayList(Context context, ZHISPartRepayListEntity zhiSPartRepayListEntity);

        /**
         * 获取通讯录短信互通的联系人列表列表
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void getSmsBothContacts(Context context, ZHISCaseDetailEntity zhiSCaseDetailEntity);

        /**
         * 案件详情-拆分dunRecords
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void getDunRecords(Context context, ZHISCaseDetailEntity zhiSCaseDetailEntity);

        /**
         * 案件详情-拆分dunFollows
         *
         * @type method
         * @author liwenjie
         * @creatTime 2019-11-06 17:52
         */
        void getDunFollows(Context context, ZHISCaseDetailEntity zhiSCaseDetailEntity);
    }
}
